home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / PD_THEMA / CLI / COMMAND.141 / COMMAND.TXT < prev   
Text File  |  1998-03-14  |  25KB  |  751 lines

  1.  
  2.              Beschreibung zu COMMAND.PRG (V1.04)
  3.              -----------------------------------
  4.  
  5.  
  6. Allgemeine Hinweise
  7. -------------------
  8.  
  9.   die Eingabe eines Befehls kann mit Hilfe der Cursortasten, der DELETE-
  10.   Taste, der ESC-Taste und der BACKSPACE-Taste korrigiert werden!
  11.   Ab Version 1.04 kann mit 'CTRL' '<-' zum Anfang der Eingabe gesprungen
  12.   werden, analog funktioniert 'CTRL' '->', nur gehts hier ans Zeilenende.
  13.  
  14.   Alle Befehle müßen kleingeschrieben werden. Es kann nicht dafür garantiert
  15.   werden, daß alle Eingabefehler ohne größere Verluste von Sourcefiles o.ä.
  16.   abgefangen werden (selber probieren).
  17.   Prinzipiell wird immer von der Directory ausgegangen, in der man sich ge-
  18.   rade befindet. Bezugnehmen auf andere Directories bzw. Laufwerke kann man
  19.   eigentlich nur mit 'cp' und 'dir'.
  20.  
  21.  
  22.  
  23. Allgemeine Befehle
  24. ------------------
  25.  
  26.   Befehl:            Beschreibung:
  27.   -------            -------------
  28.  
  29. mkdir <dirname>         Es wird ein neuer Ordner erzeugt.
  30.                 Bsp.: mkdir neu_ord
  31.                 erzeugt den Ordner 'neu_ord'.
  32.  
  33.  
  34. rmdir <dirname>         Löscht einen leeren (!) Ordner.
  35.                 Bsp.: rmdir quatsch
  36.                 löscht den Ordner 'quatsch'.
  37.  
  38.  
  39. rm <filename(n)>        Löschen von Files.
  40.                 Bsp.: rm xy.dat
  41.                 löscht den File 'xy.dat'.
  42.                 Bsp.: rm *.prg
  43.                 löscht alle Files der Gattung '.prg'.
  44.                 Bsp.: rm Afile Bfile
  45.                 löscht 'Afile' und 'Bfile'.
  46.                 Bsp.: rm c:Cfile
  47.                 löscht auf Laufwerk 'C' 'Cfile'
  48.  
  49.  
  50. cp <fileA> <fileB>        Kopieren von Files.
  51.                 Bsp.: cp Afile Bfile
  52.                 kopiert 'Afile' nach 'Bfile'
  53.                 Bsp.: cp *.prg c:*
  54.                 kopiert alle '.prg'-Files auf Laufwerk 'C'
  55.                 unter gleichem Namen.
  56.                 Da es mit diesem Befehl immer wieder Probleme
  57.                 gab, ist ein gesundes Maß an Vorsicht durch-
  58.                 aus angebracht!
  59.  
  60.  
  61.  
  62. mv <altname> <neuname>        Umbenennen von einem File.
  63.                 Bsp. mv alt.dat neu.dat
  64.                 aus dem Filenamen 'alt.dat' wird 'neu.dat'.
  65.  
  66.  
  67. cmp <fileA> <fileB>        Vergleich zweier Files.
  68.                 Bsp.: cmp erster zweiter
  69.                 vergleicht die beiden Files 'erster' und
  70.                 'zweiter'. Unterscheiden sich die beiden Files,
  71.                 wird eine entsprechende Meldung ausgegeben.
  72.                 Sind die beiden Files gleich, wird nichts
  73.                 zurückgemeldet!
  74.  
  75.  
  76. compress <file>         Komprimiert einen ASCII-File (!). Der Ausgabe-
  77.                 file besitzt die Extension '.CPR'.
  78.  
  79.  
  80. expand <file>            Expandiert einen File, der durch 'compress'
  81.                 komprimiert worden ist. Extension des Ausgabe-
  82.                 files ist '.EXP'.
  83.  
  84.  
  85. more <filename(n)>        Ausgeben der Fileinhalte auf Screen.
  86.                 Bsp.: more info.dat
  87.                 gibt den File 'info.dat' aus.
  88.                 Ein Betätigen von '^Z' hat den Abbruch
  89.                 der Auflistung zur Folge.
  90.                 Ein analoges Verhalten findet sich bei 'od'.
  91.                 Ein Drücken von RETURN nach '[MORE]' ver-
  92.                 ursacht ein zeilenweises Weitergehen, jede
  93.                 andere Taste, außer '^Z', ein seitenweises.
  94.                 Wird "während" der Zeilenausgabe '^C' ge-
  95.                 drückt, erfolgt ein sofortiges Verlassen
  96.                 des Kommandointerpreters!
  97.  
  98.  
  99. head <filename(n)>        Ausgeben der ersten fünf Zeilen eines Files.
  100.                 Bsp.: head info.dat
  101.                 gibt die ersten fünf Zeilen von 'info.dat'
  102.                 aus.
  103.  
  104.  
  105. od <filename(n)>        Ausgeben des Hexdumps eines Files.
  106.                 Bsp.: od dump.dat
  107.                 der File 'dump.dat' wird in hexadezimaler
  108.                 Form ausgegeben.
  109.  
  110.  
  111. string <file> <string>        Suchen nach einem String in einem File.
  112.                 Bsp.: string *.* Suchstring
  113.                 alle  Files  im  aktuellen Ordner werden nach
  114.                 dem String 'Suchstring' durchsucht.
  115.                 Bei einem Auffinden des Strings erfolgt  eine
  116.                 Meldung.
  117.  
  118.  
  119. crypt <keyA> <keyB> <fileA> <fileB>
  120.                 Ver-/Entschlüsseln von Dateien. <keyA/B> sind
  121.                 Zahlen,  die   zum   Verschlüsseln   und  zum
  122.                 Entschlüsseln  benötigt werden. Ein File kann
  123.                 nur  durch  die  Zahlen  wieder entschlüsselt
  124.                 werden, die  auch  zum Verschlüsseln  benutzt
  125.                 worden    sind!  <fileA>    ist   der  Quellfile,
  126.                 <fileB> der Zielfile.
  127.                 Wie sicher die Verschlüsselung ist, mag jeder
  128.                 für  sich   selbst   entscheiden. Die  beiden
  129.                 Schlüssel sind auf jeden Fall vom Typ 'long',
  130.                 dadurch  ergeben sich  schon  eine große Zahl
  131.                 von  Verschlüsselungsmöglichkeiten. Es können
  132.                 übrigens auch negative Zahlen benutzt werden!
  133.                 ACHTUNG! Die Verschlüsselung erfolgt ab V1.02
  134.                 in etwas  abgeänderter Form. Man kann deshalb
  135.                 alte  verschlüsselte  Files  nicht  mehr  mit
  136.                 diesem    Befehl    entschlüsseln  und umgekehrt.
  137.  
  138.  
  139. lp <filename(n)>        Ausgeben von Files auf den Drucker.
  140.                 Bsp. lp druck.dat
  141.                 gibt den File 'druck.dat' auf den Drucker
  142.                 aus (Centronics-Schnittstelle).
  143.  
  144.  
  145. setlp <wert1> .. <wertN>    Diese Steuercodes werden an den Drucker vor
  146.                 dem Start des Ausdrucks geschickt. Default
  147.                 ist das Senden von keinen Steuerzeichen.
  148.                 Soll ein vorhergehender Steuercode ungültig
  149.                 gemacht werden, muß man einfach 'setlp -1'
  150.                 eingeben.
  151.                 <wert1> .. <wertN> bezeichnet Dezimalzahlen.
  152.                 Bsp 1:
  153.                     setlp 27 48
  154.                 setzt einen NEC-Printer auf 8 lpi.
  155.  
  156.  
  157. resetlp <wert1> .. <wertN>    Analog zu 'setlp', nur wird dieser Steuercode
  158.                 nach Abschluß des Druckvorgangs an den Drucker
  159.                 geschickt.
  160.  
  161.  
  162. rstab                Ist die TAB-Expandierung eingeschaltet
  163.                 (default), sendet der Befehl 'lp' für
  164.                 jedes TAB-Zeichen die entsprechende An-
  165.                 zahl BLANKS, andernfalls das TAB-Zeichen.
  166.                 Dieser Befehl dient zum Ein-/ Ausschalten
  167.                 dieser Option.
  168.  
  169.  
  170. settab <wert>            Einstellen des Tabulators für Ausdrucke.
  171.                 Defaultmäßig ist 8 eingestellt. <wert>
  172.                 darf nicht unter 2 liegen!
  173.  
  174.  
  175. cd <directory>            Wechseln eines Ordners
  176.                 Bsp.: cd bingo\bingo1
  177.                 wechselt zum Subdirectory 'bingo\bingo1'
  178.                 Bsp.: cd c:ordner1
  179.                 wechselt zum Subdirectory 'ordner1' auf
  180.                 Laufwerk 'C'.
  181.  
  182.  
  183. pwd                Zeigt den aktuellen Directorypfad auf
  184.  
  185.  
  186. dir <file>            Aufzeigen der Files innerhalb eines Ordners
  187.                 Bsp.: dir
  188.                 auflisten aller Files.
  189.                 Bsp.: dir *.ttp
  190.                 nur '.ttp'-Files werden angezeigt.
  191.  
  192.  
  193. ls <file>            Kurzausgabe des Directoryinhalts
  194.  
  195.  
  196. <a..z>:             Neusetzen des aktuellen Laufwerks
  197.                 Bsp.: c:
  198.                 Laufwerk 'C' wird zum aktuellen Laufwerk.
  199.  
  200.  
  201. defkey <1..20> <string>     Belegt Funktionstaste mit einem String, der
  202.                 bei drücken der Taste ausgeführt wird.
  203.                 Bsp.: defkey 11 time
  204.                 ein Drücken von <SHIFT> <F1> zeigt nun immer
  205.                 an, was die Stunde geschlagen hat.
  206.  
  207.  
  208. keys                Gibt die Funktionstastenbelegung aus.
  209.  
  210.  
  211. time <hh:mm>            Ohne Argumentangabe wird die Uhrzeit ausge-
  212.                 geben, sonst erfolgt ein setzen der Uhrzeit.
  213.                 Bsp.: time 1:8
  214.                 setzt die Uhr auf 1 Uhr 8 Minuten.
  215.  
  216.  
  217. date <dd.mm.yy>         Ohne Argumentangabe erfolgt Ausgabe des
  218.                 Datums, sonst ein setzen des Datums.
  219.                 Bsp.: date
  220.                 es wird das Datum ausgegeben.
  221.  
  222.  
  223. echo <string>            Ausgabe des angegebenen Strings auf Screen.
  224.                 Bsp.: echo Hallo Welt!
  225.                 es wird 'Hallo Welt!' ausgegeben. Sinnvoll
  226.                 ist dieser Befehl in Batchfiles.
  227.  
  228.  
  229. wc <fileA> <fileB> ...        Zählt in den Files die vorkommenden Zeilen,
  230.                 Zahlen und Zeichen.
  231.  
  232.  
  233. find <file>            Sucht im 'kompletten' Filesystem nach dem an-
  234.                 gegebenen File. Wird dieser gefunden, erfolgt
  235.                 eine Ausgabe mit der kompletten Pfadangabe.
  236.  
  237.  
  238. df                Ausgabe des freien Speicherplatzes auf dem
  239.                 aktuellen Laufwerk.
  240.  
  241.  
  242. device                Gibt die angeschlossenen Laufwerke an.
  243.  
  244.  
  245. wait                Wartet auf Drücken einer Taste. Dieser Befehl
  246.                 ist manchmal in Batchfiles sinnvoll, um
  247.                 das Abarbeiten anzuhalten.
  248.  
  249.  
  250. lock                Dieser Befehl dient zum Sperren des Computers.
  251.                 Nach Eingabe von 'lock' wird man aufgefordert
  252.                 zweimal ein  Password einzugeben. Der Rechner
  253.                 kann dann erst    nach  erneuter Eingabe dieses
  254.                 Wortes    weiterbenutzt  werden. Dieser  Schutz
  255.                 kann  natürlich  durch    Betätigung  von RESET
  256.                 bzw. der POWER-Taste 'geknackt' werden!
  257.  
  258.  
  259. exit                Verlassen von COMMAND.PRG. Durch ^C  wird das
  260.                 gleiche erreicht.
  261.  
  262.  
  263. cls                Löschen des Bildschirms
  264.  
  265.  
  266. inverse             Invertiert Bildschirmdarstellung
  267.  
  268.  
  269. srhist                Schaltet Historyeintragungen ein/aus
  270.  
  271.  
  272. flags                Zeigt Stellung diverser Flags
  273.  
  274.  
  275. free                Gibt verfügbaren Speicherplatz aus
  276.  
  277.  
  278. mouseon             Einschalten des Mauszeigers (wozu auch immer)
  279.  
  280.  
  281. mouseoff            Ausschalten des Mauszeigers
  282.  
  283.  
  284. crson                Einschalten des Cursors
  285.  
  286.  
  287. crsoff                Ausschalten des Cursors
  288.  
  289.  
  290. help                Gibt eine Kommandoliste aus
  291.  
  292.  
  293. bell                Einmal Klingeln
  294.  
  295.  
  296. lfcr <fileA> <fileB>        Umwandeln eines ASCII-Files (fileA), wie er
  297.                 von MICROEMACS erzeugt wird, in einen File,
  298.                 wie er von anderen Editoren gebraucht wird
  299.                 (fileB). 
  300.                 Wird wohl nicht allzuhäufig benutzt werden,
  301.                 ich war aber einfach zu faul, den Befehl 
  302.                 wieder rauszuschmeißen!
  303.  
  304.  
  305. <integerzahl>            Darstellung einer Integerzahl in hexadezimaler
  306.                 und oktaler Schreibweise.
  307.                 Bsp.: 22
  308.                 Ausgabe dieser Zahl hexadezimal und oktal.
  309.  
  310.  
  311. $<hexzahl>            Darstellung dieser Zahl dezimal und oktal.
  312.  
  313.  
  314. \<oktalzahl>            Darstellung dieser Zahl hexadezimal und
  315.                 dezimal.
  316.  
  317.  
  318. COMMAND.PRG besitzt die Möglichkeit, andere Programme aufrufen zu können. Dazu
  319. muß lediglich der Filenamen und ggf. die erforderlichen Argumente eingegeben
  320. werden. Ist dieses Programm (z.B. Compiler,Editor...) mit der Abarbeitung
  321. fertig, wird automatisch zu COMMAND.PRG zurückgekehrt.
  322.  
  323.  
  324.  
  325. ALIAS-Einrichtung
  326. -----------------
  327. Der Kommandointerpreter bietet dem Benutzer die Möglichkeit, bestimmte Befehle
  328. umzubenennen. Wird zum Beispiel öfters ein bestimmtes Programm aufgerufen,
  329. kann dieser Aufruf umbenannt werden. Sei das Programm 'xcompiler.prg' immer
  330. wieder aufzurufen, kann dieses Kommando z.B. in 'cc' umbenannt werden.
  331. Wird ein Editor öfters zum editieren eines bestimmten Files aufgerufen, kann
  332. der normale Aufruf 'editor.prg file.c' einfach in einen anderen kürzeren,
  333. z.B. 'edi', umbenannt werden.
  334. Sämtliche Umbenennungen können im File 'alias.dat' abgelegt werden. Dieser
  335. File wird zum Programmbeginn von COMMAND.PRG eingelesen (soweit vorhanden),
  336. die alternativen Kommandonamen können also sofort genutzt werden und müssen
  337. nicht zu jeder Sitzung neu eingegeben werden.
  338.  
  339. alias                Aufzeigen aller aktuell gültigen Umbenennung-
  340.                 en.
  341.  
  342.  
  343. getalias            Einlesen des Files 'alias.dat'.
  344.  
  345.  
  346. savealias            Abspeichern der gültigen Umbenennungen in
  347.                 'alias.dat'.
  348.  
  349.  
  350. newalias <neu> <alt>        Umbenennen von 'alt' in 'neu'.
  351.                 Bsp. newalias cc mmcc.ttp
  352.                 das alte Kommando 'mmcc.ttp' kann nun auch
  353.                 durch 'cc' aufgerufen werden.
  354.  
  355.  
  356. delalias <name>         Löschen eines Alias-Eintrages (<name>).
  357.  
  358.  
  359.  
  360.  
  361. History-Einrichtung
  362. -------------------
  363.  
  364. Ein weiteres Bonbon des Interpreters ist die Möglichkeit, bereits eingegebene
  365. Befehle auf einfache Weise erneut aufzurufen. Dies ist allerdings auf die
  366. letzten zwanzig Kommandos beschränkt. UNIX-Kennern dürfte diese Einrichtung
  367. und ihre Vorzüge wohl hinlänglich bekannt sein.
  368. Ein einfaches Beispiel soll die praktische Anwendung dieser Möglichkeit auf-
  369. zeigen. Zum Erstellen eines Programms in C, PASCAL u.s.w. sind immer die
  370. gleichen Schritte nötig: Editieren->Compilieren->Linken->Probelauf. Meist
  371. erfolgt zwischen Compilieren und Linken noch eine Kurzvisite beim Editor,
  372. weil halt doch noch ein Syntaxfehler drin ist.
  373.  
  374. Die Kommandos seien          ihre Bedeutung:
  375. folgende:
  376.  
  377. 77>ed bsp.pas              Aufruf des Editors zum Editieren von bsp.pas
  378. 78>pas bsp.pas              Aufruf des Compilers zur Objektfilerzeugung
  379.  
  380. Ist jetzt ein Fehler aufgetreten, muß zum Editieren zurückgegangen werden.
  381. Also
  382.  
  383. 79>ed bsp.pas
  384.  
  385. eingeben u.s.w.
  386.  
  387. Durch die Historyeinrichtung reicht es, wenn der Benutzer einfach '!77'
  388. eingibt, es wird dann das Kommando 77 ausgeführt. '77>' stellt übrigens die
  389. Aufforderung des Interpreters dar, Kommando 77 einzugeben. Es kann aber
  390. nicht nur über Kommandonummern auf zurückliegende Eingaben Bezug genommen
  391. werden, die Eingabe '!e' hätte auch zum Wiederaufruf von Kommando 77 ge-
  392. führt, d.h. es wird nach dem letzten Kommando gesucht, daß mit 'e' beginnt und
  393. dieses dann ausgeführt. Diese Eingabe von Anfangsbuchstaben ist nicht auf die
  394. Länge 1 begrenzt! Hat ein Benutzer kürzlich einen Kopierbefehl (cp A B), einen
  395. Vergleichsbefehl (cmp x y) und einen Befehl zum Wechseln des Ordners (cd \D)
  396. gegeben, kann durch Eingabe zweier Zeichen immer eindeutig auf eines dieser
  397. Kommandos Bezug genommen werden (z.B. '!cp' für den Kopierbefehl).
  398. Wohlgemerkt, die Benutzung von History ist auf die letzten fünfzig Eingaben
  399. beschränkt!.
  400.  
  401. Ab Version 1.01 bietet die Historyeinrichtung weitere Möglichkeiten. Alte
  402. Befehle können durch Benutzung der CURSOR-UP-Taste angewählt werden. Ein
  403. Vorwärtsblättern ist durch CURSOR-DOWN gegeben. Die Befehle können editiert
  404. werden und kommen erst durch drücken von RETURN zur Ausführung!
  405.  
  406. h                Ausgabe der letzten fünfzig Kommandos.
  407.  
  408.  
  409. !<nr>                Wiederaufruf des Kommandos mit der Nummer
  410.                 <nr>.
  411.  
  412.  
  413. !<string>            Wiederaufruf des Kommandos, daß mit dem
  414.                 angegebenen <string> beginnt.
  415.  
  416.  
  417. !!                Wiederaufruf des letzten Kommandos.
  418.  
  419.  
  420.  
  421.  
  422. Batch-Processing
  423. ----------------
  424.  
  425. Kommen wir nun zur letzten aber nicht unbedeutendsten Fähigkeit des Kommando-
  426. Interpreters, dem Abarbeiten von Batchfiles.
  427. Leider wird diese Möglichkeit auch auf Systemen, die dafür eingerichtet sind
  428. selten genutzt. Lieber gibt ein Benutzer immer die gleiche Befehlsfolge ein,
  429. als sich einen Batchfile, der diese Folge enthält, zu erstellen und diesen
  430. dann einfach ablaufen zu lassen.
  431. In einem Batchfile kann prinzipiell jedes der bis jetzt besprochenen Kommandos
  432. stehen. Es gibt noch eine Palette weiterer Kommandos, die den Ablauf inner-
  433. halb eines Batchfiles regeln (z.B. Sprungmarken).
  434. Wird in einem Batchfile viel gesprungen, bzw. finden Schleifendurchläufe
  435. statt, sollte der File in einer RAMDisk abgelegt und gestartet werden, daß
  436. bringt einen ziemlichen Zeitgewinn und nützt die Floppy nicht ab.
  437.  
  438. batch <file> <arg0> ... <arg9>    Aufruf des Batchfiles <file>. <arg0> bis
  439.                 <arg9> entsprechen Strings. Innerhalb eines
  440.                 Batchfiles können Platzhalter gesetzt werden
  441.                 ($0 bis $9). Diese werden durch die Strings
  442.                 ersetzt. Dadurch wird erreicht, daß z.B. ein
  443.                 Batchfile für Compilierung und Linken eines
  444.                 Files mit unterschiedlichen Sourcefilenamen
  445.                 aufgerufen werden kann!
  446.  
  447.  
  448. @<file> <arg0> ... <arg9>    entspricht 'batch'                
  449.  
  450.  
  451. restart             Befehl innerhalb eines Batchfiles zum
  452.                 Neustart des Files.
  453.  
  454.  
  455. stop                Stoppen eines Batchfiles.
  456.  
  457.  
  458. ?stop                bedingtes Stoppen eines Batchfiles (der Be-
  459.                 nutzer wird gefragt).
  460.  
  461.  
  462. text                Jedes Kommando innerhalb eines Batchfiles
  463.                 soll vor Ausführung auf den Bildschirm aus-
  464.                 gegeben werden (default-Einstellung).
  465.  
  466.  
  467. notext                Abschalten der Kommandoausgabe.
  468.  
  469.  
  470. errorbreak            BATCH-Kommandos im Falle eines Fehlers
  471.                 abbrechen / nicht abbrechen (es wird hin-
  472.                 und hergeschaltet).
  473.  
  474.  
  475. lbl <marke>            Sprungmarke in einem Batchfile. Es darf
  476.                 kein weiterer Befehl in einer lbl-Zeile
  477.                 stehen!
  478.                 Bsp.: lbl LOOP
  479.                 festlegen des Labels 'LOOP'
  480.  
  481.  
  482. goto <marke>            Sprung zur angegebenen Marke.
  483.                 Bsp.: goto LOOP
  484.                 würde zum oben angegeben Label springen.
  485.  
  486.  
  487. exist <file> <label>        ist <file> vorhanden wird zu <label> ge-
  488.                 sprungen.
  489.  
  490.  
  491. size0 <file> <label>        ist <file> nicht da oder Größe gleich Null
  492.                 wird zu <label> gesprungen.
  493.  
  494.  
  495. ;<Kommentar>            Kommentarzeile, die überlesen wird.
  496.                 ';' kann an jeder beliebigen Stelle der
  497.                 Eingabe stehen. Alle nachfolgenden
  498.                 Zeichen werden ignoriert.
  499.                 Bsp.: dir ; no comment
  500.                 verhält sich wie 'dir'.
  501.                 ';' ermöglicht eine recht gute Doku-
  502.                 mentierung von Batchfiles.
  503.  
  504.  
  505. status                Ausgabe einer Variablen, die zur Steuerung
  506.                 innerhalb des Batchfiles benutzt wird.
  507.                 Sie wird vor jedem Ablauf eines Batchfiles
  508.                 auf Null gesetzt. Werden innerhalb des
  509.                 Files andere Programme (z.B. Compiler) ge-
  510.                 startet, so wird deren Rückgabewert in
  511.                 'status' abgelegt. Ein fehlerhafter Compiler-
  512.                 lauf kann also zum Sprung zu einer bestimmten
  513.                 Marke genutzt werde. Der Benutzer muß aller-
  514.                 dings die Rückgabewerte der Programme und
  515.                 ihre Bedeutung kennen. Wird nur das Kommando
  516.                 'status' gegeben, wird der Wert dieser
  517.                 Variablen angezeigt. Damit kann man also
  518.                 Programmrückgabewerte bestimmen.
  519.  
  520.  
  521. <> <zahl>            Ist 'status' ungleich einer bestimmten Zahl,
  522.                 wird der Batchvorgang abgebrochen (z.B.
  523.                 nach einem fehlerhaften Compiliervorgang).
  524.                 Bsp.: <> 0
  525.                 ist 'status' <> 0, dann brich ab.
  526.  
  527.  
  528. < <zahl>            Analog zu '<>' nur erfolgt hier der Abbruch,
  529.                 wenn 'status' < <zahl>.
  530.  
  531.  
  532. > <zahl>            Analog, nur größer diesmal.
  533.  
  534.  
  535. == <zahl>            Diesmal Abbruch, wenn gleich <zahl>.
  536.  
  537.  
  538. ?status= <zahl> <label>     Diese drei Befehle dienen zur Steuerung des
  539. ?status> <zahl> <label>     Batchfiles, wenn bestimmte Ereignisse ein-
  540. ?status< <zahl> <label>     getreten sind. Ist 'status' gleich, größer
  541.                 oder kleiner einer bestimmten Zahl, soll ab
  542.                 einem bestimmten Label innerhalb des Batch-
  543.                 files weitergemacht werden.
  544.                 Bsp.: ?status> 0 editor
  545.                 ist 'status' größer Null springe zum Label
  546.                 'editor'.
  547.  
  548.  
  549. counter             Auf die Variable 'status' kann der Benutzer
  550.                 keinen direkten Einfluß nehmen. In vielen
  551.                 Fällen, z.B. wenn Schleifendurchgänge ge-
  552.                 braucht werden, ist jedoch ein kontrollier-
  553.                 barerer Ablauf notwendig. Zu diesem Zweck gibt
  554.                 es die Variable 'counter'. Ihre Belegung
  555.                 und Verwendung unterliegt dem vollständigen
  556.                 Einfluß durch den Benutzer.
  557.                 Der Befehl 'counter' gibt den Wert dieser
  558.                 Variablen wieder.
  559.  
  560.  
  561. setcounter <zahl>        Setzt 'counter' auf den Wert <zahl>.
  562.                 Bsp.: setcounter 20
  563.                 counter := 20;
  564.  
  565.  
  566. inccounter            erhöht 'counter' um eins.
  567.  
  568.  
  569. deccounter            erniedrigt 'counter' um eins
  570.  
  571.  
  572. ?counter= <zahl> <label>    wenn 'counter' = <zahl> gehe zu <label>.
  573.  
  574.  
  575. ?counter< <zahl> <label>    wenn 'counter' < <zahl> gehe zu <label>.
  576.  
  577.  
  578. ?counter> <zahl> <label>    wenn 'counter' > <zahl> gehe zu <label>.
  579.  
  580.  
  581. ?counter# <zahl> <label>    wenn 'counter' <> <zahl> gehe zu <label>.
  582.  
  583.  
  584. counter+ <zahl>         counter := counter + <zahl>
  585.  
  586.  
  587. counter- <zahl>         counter := counter - <zahl>
  588.  
  589.  
  590. counter* <zahl>         counter := counter * <zahl>
  591.  
  592.  
  593.  
  594. Es soll angemerkt werden, daß 'status' eine 32-Bit-Integer Zahl ist. Bei
  595. 'counter' handelt es sich um einen 16-Bit-Integerwert.
  596. Tritt in einem Batchfile ein Syntaxfehler auf, wird die Abarbeitung abge-
  597. brochen (nicht bei Benutung von 'errorbreak')!
  598. Befindet sich im AUTO-Ordner die Batch-Datei 'batch.com', so wird diese von
  599. 'command.prg' während dem Programmstart ausgeführt. Damit hat man z.B. die
  600. Möglichkeit, bestimmte Files auf eine RAMDisk zu kopieren oder Funktions-
  601. tasten vorzubelegen.
  602.  
  603. Beispiele:
  604.   
  605.  Bsp. 1:
  606.  
  607.     ;
  608.     ; Batchfile zur Compilierung und zum Linken eines C-Files
  609.     ;
  610.     cc $0.c     ; Aufruf des Compilers
  611.     <> 0        ; Abbruch wenn Fehler aufgetreten
  612.     link $0.o -o $1    ; Linken des Objektfiles
  613.     <> 0        ; Abbruch wenn Fehler aufgetreten
  614.     rm $0.o        ; Löschen des Objektfiles
  615.  
  616.   Im vorliegenden Beispiel wird ein C-Sourcefile mit Hilfe eines Batchfiles
  617.   compiliert und gelinkt.
  618.   Die ersten drei Zeilen dienen lediglich der Dokumentierung (Kommentar-
  619.   zeilen). In Zeile 4 wird der C-Compiler aufgerufen. '$0' repräsentiert
  620.   den Namen des Sourcefiles (Eingabe ohne Extension!). Es wird davon aus-
  621.   gegangen, daß der Compiler im Falle eines korrekten Durchlaufs eine
  622.   Null zurückgibt. Andernfalls sorgt Zeile 5 für einen Abbruch der Batch-
  623.   Bearbeitung. Nach dem Compilieren soll der entstandene Objektfile gelinkt
  624.   werden. Dies wird durch die Anweisung in Zeile 6 bewerkstelligt.
  625.   '$0' ist wieder der Programmname, diesmal mit Extension '.o', $1 soll den
  626.   Namen des lauffähigen Programms darstellen (diesmal muß eine Extension 
  627.   angegeben werden). Im Fehlerfall sorgt Zeile 7 für einen Abbruch der
  628.   Bearbeitung. Ist alles in Ordnung wird durch Zeile 8 noch der Objekt-
  629.   file gelöscht.
  630.   Angenommen der Batchfile heißt 'cc.com', so sorgt zum Beispiel das
  631.   Kommando '@cc test run.prg' für eine Compilierung des Files 'test.c'.
  632.   Der lauffähige File wird unter 'run.prg' abgelegt.
  633.   Man kann hier sehr gut die Vorteile der Platzhalter ($) erkennen.
  634.   Unterschiedliche C-Files können mit einem Batch-File bearbeitet werden.
  635.  
  636.  
  637.  Bsp. 2:
  638.  
  639.   Dieses Beispiel ist für alle Benutzer des Assemblers aus dem Entwicklungs-
  640.   paket interessant. Es zeigt, wie man Batchfiles abbrechen kann, auch wenn
  641.   das aufgerufene Programm keine Fehlercodes zurückgibt.
  642.  
  643.     size0 $0.s exit        ; Sourcefile muß da sein
  644.     as68.ttp -l -u $0.s    ; Assemblierung
  645.     size0 $0.o linker    ; wenn kein '.o'-File vorhanden raus
  646.     link68.ttp [u] $0.68k = $0.o ; Linken
  647.     size0 $0.68k exit    ; wenn kein '.68k'-File vorhanden raus
  648.     relmod.ttp $0.68k $0.$1    ; lauffähigen File erstellen
  649.     rm $0.68k *.o        ; '.o' und '.68k' Files löschen
  650.     lbl exit
  651.  
  652.   Dieser Batchfile arbeitet wieder mit zwei Argumenten ($0 und $1). $0 re-
  653.   präsentiert wieder den Filenamen (ohne Extension), $1 die Extension des
  654.   lauffähigen Files. Heißt der Batchfile 'as' könnte eine Assemblierung
  655.   z.B. so aussehen: 
  656.             '@as test tos',
  657.   d.h. File 'test.s' soll in 'test.tos' resultieren.
  658.  
  659.  
  660.  
  661. Variablen
  662. ---------
  663.  
  664. Eine große Neuerung ab Version 1.02 stellt die Einführung von Variablen dar.
  665. Der Benutzer hat nun die Möglichkeit, beliebige Variablen zu definieren und
  666. einfache Rechnungen mit ihnen durchzuführen. Dies kann in Batch-Files zum
  667. Aufbau von Schleifen benutzt werden.
  668.  
  669. Die Befehle im Einzelnen:
  670.  
  671. let <var>✓£ÄSüנõנä0¨`y9╱Dג⇦⇦gij@gαijG⇩`x88y999B⇨α`gijגτijG⇦⇧ijג⇩gπ#ππ°88y999⇩⇦ij@τגIJ⇦'ijG⇩A◆╱@ג'ΣG⇦⇧ijג⇩d'ו⇦gπ#ππ°88x88x88A⇦gαijG⇩`gα'ταijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gααgαijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gαgταijG⇩gijτijG⇧ijαgαijו╱Dαx88A⇦gαijG⇩`gατταijG⇩gijτijG⇧ijαgαijו╱Dαx88y999@⇩gIJgמGה⇧α Aג⇩'ij@'חIJ`'ijDτחג⇩B⇨אAD⇦x88y999⇦⇦⇦⇧⇦Dαx88y999B⇨α`x88y9999⇧⇦gו'α'π#τij◆⇩@⇦#888y999⇦@gו'α'π#ατא⇨אAD⇦'ij@'Σ◆⇩@⇦#$888y999B⇨α`x8
  672.                     if xy <> ab ende
  673.                 wenn 'xy' ungleich 'ab', springe zu 'ende'
  674.  
  675.  
  676. -- <var1> <var2> .. <varN>    dekrementieren von Variablen um eins.
  677.                 Bsp.: -- zaehler xy ab
  678.                 dekrementiert die angegebenen Variablen um
  679.                 eins
  680.  
  681.  
  682. ++ <var1> <var2> .. <varN>    inkrementieren von Variablen um eins.
  683.  
  684.  
  685. -= <varA> <var | zahl>        erniedrigen von <varA> um <zahl | var >
  686.                 Bsp.: -= ab 10
  687.                 zieht von 'ab' 10 ab
  688.  
  689.  
  690. += <varA> <var | zahl>        analog zu -=, nur erhöhen.
  691.  
  692.  
  693. 2* <var1> <var2> .. <varN>    verdoppeln von Variablenwerten.
  694.                 Bsp.: 2* zaehler
  695.                 zaehler := 2 * zaehler
  696.  
  697.  
  698. 2/ <var1> <var2> .. <varN>    halbieren von Variablenwerten.
  699.  
  700.  
  701. *= <varA> <var | zahl>        multiplizieren von <varA> mit <var | zahl>
  702.                 Bsp.: *= ab xy
  703.                 ab := ab * xy
  704.  
  705.  
  706. /= <varA> <var | zahl>        analog zu *=, nur Division.
  707.  
  708.  
  709. print <var1> <var2> .. <varN>    ausgeben der Variableninhalte.
  710.  
  711.  
  712. clear                alle Variablen auf Null setzen.
  713.  
  714.  
  715. vardump                Ausgabe aller Variablen mit Belegungen.
  716.  
  717.  
  718. Die Werte der Variablen sind vom Typ 'long' (integer).
  719. Neue Variablen können nicht nur durch den 'let'-Befehl eingeführt werden.
  720. Jeder Bezug auf eine Variable, die noch nicht existiert, erzeugt einen
  721. Variableneintrag und setzt den Wert auf Null!
  722.  
  723.  
  724.  
  725. Zum Schluß möchte ich noch auf die Anfälligkeit bezüglich Bomben eingehen.
  726. Im normalen Betrieb ist das Programm (hoffentlich) absturzsicher. Es ist
  727. allerdings möglich, die ach so beliebten Bomben auf den Bildschirm zu
  728. zaubern. Wie das geht soll jeder selbst rausfinden.
  729. Die eigentliche Stärke des Interpreters kommt bei der Benutzung einer Hard-
  730. disk zum Vorschein, es läßt sich damit wesentlich effektiver arbeiten als
  731. mit der Maus oder den diversen Shells, die so durch die Computerwelt
  732. geistern. Nur absolute Mausfetischisten dürften auf die Vorzüge eines
  733. solchen Kommandointerpreters verzichten wollen, schneller ist die Bedienung
  734. des Rechners mit solchen Programmen auf jeden Fall.
  735. Es gibt Programme, die sich mit diesem Interpreter, aus was für Gründen auch
  736. immer, nicht vertragen. Eins davon ist (leider) der GFA-BASIC-Interpreter.
  737.  
  738.  
  739. Der Kommando-Interpreter kann frei kopiert werden. Es bestehen keinerlei
  740. Copyright-Ansprüche. Für Anregungen, Fehlermeldungen oder unbedingt notwendige
  741. Erweiterungen bin ich immer dankbar. Diese können an folgende Adresse ge-
  742. schickt werden:
  743.  
  744.             Joachim Wolf
  745.             Hügelheimerstr. 15
  746.               7840 Müllheim / Baden
  747.  
  748. Da ich meistens nur am Wochende einige Zeit mit dem ATARI zubringe, möchte
  749. ich darum bitten, daß keine Kopierwünsche o.ä. an mich herangetragen werden,
  750. ich könnte sonst nur noch weniger Zeit mit der Suche nach Fehlern zubringen!
  751.